package com.open.source;

/**
 * 统一维护注解方式的常量
 *
 * @author ZonLen since on 2022/8/22 上午11:52
 */
public interface MqConstant {

  String PRODUCER_HOST_IP = "producer-host-ip";
  String PRODUCER_APPLICATION_NAME = "producer-application-name";

  String X_RETRIES_HEADER = "x-retries";

  /**
   * rabbit exchange start
   */
  //einvoice-topic-exchange交换机的队列命名 start
  String RABBIT_CALLBACK_WEBSERVICE_QUEUE = "callback-webservice";
  String RABBIT_CALLBACK_RESTFUL_QUEUE = "callback-restful";
  String RABBIT_CALLBACK_EMAIL_QUEUE = "callback-email";
  String RABBIT_CALLBACK_SMS_QUEUE = "callback-sms";
  String RABBIT_CALLBACK_WEI_XIN_QUEUE = "callback-weixin";
  String RABBIT_CALLBACK_CORP_REV_QUEUE = "callback-corpRev";
  String RABBIT_CALLBACK_COUNT_TAX_MECH_QUEUE = "callback-count-taxmech";
  String RABBIT_CALLBACK_RED_APPLY_QUEUE = "callback-redapply";
  String RABBIT_CALLBACK_GATHER_PUSH_QUEUE = "callback-gatherpush";
  //einvoice-topic-exchange交换机的队列命名 end
  String RABBIT_EINVOICE_TOPIC_EXCHANGE = "einvoice-topic-exchange";

  //einvoice-direct-exchange交换机的队列命名 start
  String RABBIT_INVOICE_CLIENT_QUEUE = "invoice-client-queue";
  String RABBIT_INVOICE_CLIENT_DELAY_QUEUE = "invoice-client-queue-DLK";
  String RABBIT_INVOICE_CLIENT_ERROR_QUEUE = "invoice-client-queue-ERR";
  //einvoice-direct-exchange交换机的队列命名 end
  String RABBIT_EINVOICE_DIRECT_EXCHANGE = "einvoice-direct-exchange";


  //电子票据url回调延时队列
  String RABBIT_ERECEIPT_CALLBACK_RESTFUL_DELAY_QUEUE = "ereceipt-callback-restful-dlk";
  //电子票据url回调错误队列
  String RABBIT_ERECEIPT_CALLBACK_RESTFUL_ERROR_QUEUE = "ereceipt-callback-restful-err";
  //电子票据url回调队列
  String RABBIT_ERECEIPT_CALLBACK_RESTFUL_QUEUE = "ereceipt-callback-restful";
  String RABBIT_ERECEIPT_TOPIC_EXCHANGE = "ereceipt-topic-exchange";

  String RABBIT_ERECEIPT_APPLY_DELAY_QUEUE = "ereceipt-invoicing-dlk";
  String RABBIT_ERECEIPT_APPLY_ERROR_QUEUE = "ereceipt-invoicing-err";
  //申请对列，开票申请保存后发出生成票据请求
  String RABBIT_ERECEIPT_APPLY_QUEUE = "ereceipt-invoicing";
  //开具电子收据交换机
  String RABBIT_ERECEIPT_DIRECT_EXCHANGE = "ereceipt-direct-exchange";

  String RABBIT_UAP_INVOICE_BASE_QUEUE = "einvoice_base";
  //发票回传结果处理延时队列
  String RABBIT_UAP_INVOICE_OFD_DELAY_QUEUE = "OFD_INVOICE-DLK";
  //ODF发票错误队列
  String RABBIT_UAP_INVOICE_OFD_ERROR_QUEUE = "OFD_INVOICE-ERR";
  //OFD发票开票队列
  String RABBIT_UAP_BILLING_LOG_QUEUE = "einvoice_billing_log";
  String RABBIT_UAP_INVOICE_OFD_QUEUE = "OFD_INVOICE";
  String RABBIT_UAP_BILL_CENT_SYNC_QUEUE = "bill-center-sync";
  String RABBIT_UAP_MESSAGE_PDF_QUEUE = "invoice-pdf-queue";
  String RABBIT_UAP_CUSTOMER_SYNC_QUEUE = "customer-sync-queue";
  String RABBIT_UAP_ADMISSION_CONSUME_QUEUE = "admission-consume-queue";
  String RABBIT_UAP_DIRECT_EXCHANGE = "iuap-direct-exchange";

  //申请对列，开票申请保存后发出生成票据请求
  String RABBIT_DIRECT_NONTAX_APPLY_INVOICING_QUEUE = "nontax-apply-invoicing";
  //申请队队列-错误信息
  String RABBIT_DIRECT_ERROR_NONTAX_APPLY_INVOICING_QUEUE = "error-nontax-apply-invoicing";
  //获取开票结果队列
  String RABBIT_DIRECT_NONTAX_QUERY_RESULT_QUEUE = "nontax-query-result";
  //获取开票结果队列-错误信息
  String RABBIT_DIRECT_ERROR_NONTAX_QUERY_RESULT_QUEUE = "error-nontax-query-result";
  //延时队列，获取开票结果放入该延时队列中
  String RABBIT_DIRECT_NONTAX_DELAY_QUERY_RESULT_QUEUE = "nontax-delay-query-result";
  //回调队列，处理回调url
  String RABBIT_DIRECT_NONTAX_CALLBACK_RESTFUL_QUEUE = "nontax-callback-restful";
  //延时队列，处理回调url
  String RABBIT_DIRECT_NOTAX_DELAY_CALLBACK_RESTFUL_QUEUE = "nontax-delay-callback-restful";
  //回调队列-邮件通知
  String RABBIT_DIRECT_EMAIL_NONTAX_CALLBACK_QUEUE = "nontax-email-callback";
  //回调队列-错误信息
  String RABBIT_DIRECT_ERROR_NONTAX_CALLBACK_RESTFUL_QUEUE = "error-nontax-callback-restful";
  // 邮件队列-错误信息
  String RABBIT_DIRECT_ERROR_NONTAX_EMAIL_QUEUE = "error-nontax-email";
  String RABBIT_DIRECT_EXCHANGE = "direct-exchange";

  String RABBIT_INVOICE_INVOICE_BATCH_DOWNLOAD_QUEUE = "INVOICE-BATCH-DOWNLOAD";
  String RABBIT_EINVOICE_DOWNLOAD_EXCHANGE = "einvoice-download-exchange";

  /**
   * 业务日志队列 默认交换机
   */
  String RABBIT_ACTION_LOG_CONSUME_QUEUE = "actionlog-consume-queue-notdiwork";
  String RABBIT_ACTION_LOG_QUEUE = "actionlog-consume-queue";
  /**
   * rabbit exchange end
   */
  //kafka topic start（rabbitmq einvoice-topic-exchange 交换机对应队列）
  String INVOICE_TOPIC__CALLBACK_WEBSERVICE = "INVOICE_TOPIC__CALLBACK_WEBSERVICE";
  String INVOICE_TOPIC__CALLBACK_RESTFUL = "INVOICE_TOPIC__CALLBACK_RESTFUL";
  String INVOICE_TOPIC__CALLBACK_EMAIL = "INVOICE_TOPIC__CALLBACK_EMAIL";
  String INVOICE_TOPIC__CALLBACK_SMS = "INVOICE_TOPIC__CALLBACK_SMS";
  String INVOICE_TOPIC__CALLBACK_WEIXIN = "INVOICE_TOPIC__CALLBACK_WEIXIN";
  String INVOICE_TOPIC__CALLBACK_CORP_REV = "INVOICE_TOPIC__CALLBACK_CORP_REV";
  String INVOICE_TOPIC__CALLBACK_COUNT_TAXMECH = "INVOICE_TOPIC__CALLBACK_COUNT_TAXMECH";
  String INVOICE_TOPIC__CALLBACK_RED_APPLY = "INVOICE_TOPIC__CALLBACK_RED_APPLY";
  String INVOICE_TOPIC__CALLBACK_GATHER_PUSH = "INVOICE_TOPIC__CALLBACK_GATHER_PUSH";

  //kafka topic end（rabbitmq einvoice-topic-exchange 交换机对应队列）
  String INVOICE_DIRECT__INVOICE_CLIENT_DELAY = "INVOICE_DIRECT__INVOICE_CLIENT_DELAY";
  String INVOICE_DIRECT__INVOICE_CLIENT_ERROR = "INVOICE_DIRECT__INVOICE_CLIENT_ERROR";
  String INVOICE_DIRECT__INVOICE_CLIENT = "INVOICE_DIRECT__INVOICE_CLIENT";

  String ERECEIPT_TOPIC__CALLBACK_RESTFUL_DELAY = "ERECEIPT_TOPIC__CALLBACK_RESTFUL_DELAY";
  String ERECEIPT_TOPIC__CALLBACK_RESTFUL_ERROR = "ERECEIPT_TOPIC__CALLBACK_RESTFUL_ERROR";
  String ERECEIPT_TOPIC__CALLBACK_RESTFUL = "ERECEIPT_TOPIC__CALLBACK_RESTFUL";

  String ERECEIPT_DIRECT__INVOICING_APPLY_DELAY = "ERECEIPT_DIRECT__INVOICING_APPLY_DELAY";
  String ERECEIPT_DIRECT__INVOICING_APPLY_ERROR = "ERECEIPT_DIRECT__INVOICING_APPLY_ERROR";
  String ERECEIPT_DIRECT__INVOICING_APPLY = "ERECEIPT_DIRECT__INVOICING_APPLY";

  String UAP_DIRECT__INVOICE_BASE = "UAP_DIRECT__INVOICE_BASE";
  String UAP_DIRECT__INVOICE_OFD_DELAY = "UAP_DIRECT__INVOICE_OFD_DELAY";
  String UAP_DIRECT__INVOICE_OFD_ERROR = "UAP_DIRECT__INVOICE_OFD_ERROR";
  String UAP_DIRECT__BILLING_LOG = "UAP_DIRECT__BILLING_LOG";
  String UAP_DIRECT__INVOICE_OFD = "UAP_DIRECT__INVOICE_OFD";
  String UAP_DIRECT__MESSAGE_PDF = "UAP_DIRECT__MESSAGE_PDF";
  String UAP_DIRECT__CUSTOMER_SYNC = "UAP_DIRECT__CUSTOMER_SYNC";
  String UAP_DIRECT__ADMISSION_CONSUME = "UAP_DIRECT__ADMISSION_CONSUME";

  String TAX_TOPIC_DELAY_DEMO = "TAX_${spring.application.name}_TOPIC_DELAY_DEMO";
  String TAX_TOPIC_DELAY_DEMO_GROUP_ID = "YOU_YOU";
  String TAX_TOPIC_DEMO = "TAX_TOPIC_DEMO";
}
